#   所有参数设置

##  交通层场景选择
# scenario_map = "NGSIM_US-101"         # 仿真场景地图设置
# scenario_gen_para = 500               # 动态仿真场景生成参数设置
# message_gen_poss_lambda = 0.15        # 数据包生成速率泊松模型的参数

scenario_map = "highway"            # 仿真场景地图设置
scenario_gen_para = 500             # 动态仿真场景生成参数设置
message_gen_poss_lambda = 0.3      # 数据包生成速率泊松模型的参数

scenario_map2paraName = {
    "highway": ["vehsPerHour", "highway/highway_test1.sumocfg"],        # 高速公路场景的生成参数设置为 车流量
    "gridNetwork": ["p", "grid_network/grid_network.sumocfg"],          # 网格道路场景的生成参数为 进入率
}


##  训练参数设置
DEBUG = False                       # 是否开启调试模式
NUM_EPISODE = 20                    # 训练的轮次
stratege_choices = [0, 1, 2, 7, 8]       # 卸载策略选择
sendMessage = False                 # 是否发送结果通知短信

index2name = {
    0: "local",                                 # 本地卸载
    1: "rsu",                                   # RSU卸载
    2: "random",                                # 随机卸载
    3: "distributed_DDPG",                      # 分布式DDPG卸载
    4: "distributed_PPO",                       # 分布式PPO卸载
    5: "centralized_DDPG",                      # 集中式DDPG卸载(联邦学习)
    6: "centralized_PPO",                       # 集中式PPO卸载(联邦学习)
    7: "distributed_SAC",                       # 分布式SAC卸载(联邦学习)
    8: "centralized_SAC",                       # 集中式SAC卸载
}

is_distributed_strategy = [3, 4, 7]
is_centralized_strategy = [5, 6, 8]

## 神经网络设置
STATE_DIM = 3 * 5 + 2 + 1                 # 状态维度
ACTION_DIM = 6                            # 动作维度



##  通信参数设置
OBU_COMPUTING_POWER_MU = 1.2                    # OBU的计算能力正态分布mu(单位: G Cycles/s)
OBU_COMPUTING_POWER_SIGMA = 0.15                # OBU的计算能力正态分布sigma(单位: G Cycles/s)
RSU_COMPUTING_POWER = 6.0                       # RSU的计算能力(单位: G Cycles/s)

MAX_CONNECT_DISTANCE = 200.0                    # 最大连接距离(单位: m) 

MIN_PREDICTED_CONNECTION_TIME_INTERVAL = 0.01   # 预测连接时间的最小时间间隔(单位: s)
MAX_PREDICTED_CONNECTION_TIME = 20.00           # 预测连接时间的最大时间(单位: s)


# 环境参数设置

# 优势函数权重参数
omega_1 = 0.6   # 信道维持时间权重
omega_2 = 0.2   # 服务单元计算能力权重
omega_3 = 0.2   # 服务单元下一空闲时间权重

# 奖励函数权重参数
omega_4 = 1.0   # 计算时延奖励权重参数
omega_5 = 0.0   # 能耗奖励权重参数

# wireless_Channel_Data_Transmission_Rate 计算无线信道数据传输速率的参数设置
W = 20              # 通信带宽, 默认 20 MHz
P = 1               # 信号发送功率, 默认 1 W
alpha = 2.5         # 路径损耗系数, 默认为 2.5
h = 10 ** -6        # 信道传输增益, 默认为 10 ** -6
N = 10 ** -12       # 背景噪声, 加性高斯白噪声, 默认为 10 ** -12 W, 即 -90 dBm

## 计算能耗参数
KAPPA = 1.25 * (10 ** -26)       # W * (G Cycle ** -2) 能耗系数, 默认为 1.5 * (10 ** -25) W * (G Cycle ** -2)

# 非零抵消参数
non_zero = 10 ** -100

# 协议特性开关：启用 IEEE 802.11bd（提升数据速率与通信覆盖能力）
BD_ENABLED = True
BD_PROCESSING_GAIN_DB = 5.0   # 增强处理增益（更高的导频/均衡/编码增益近似）
BD_MIN_MCS_SNR_DB = 3.0       # 最低 MCS 工作的 SNR 阈值近似
BD_MAC_OVERHEAD_BASE = 0.90   # 提升 MAC 层净吞吐效率基线（更优的 EDCA/聚合近似）
BD_DEBUG_PRINT = False        # 打印关键通信能力指标

# MAC 层退避时序简化模型（可选开关，不改动接口）
MAC_BACKOFF_MODEL_ENABLED = False   # 关闭保持线性退化；开启使用非线性拟合
MAC_BACKOFF_BETA = 0.12             # 一阶非线性系数（并发对净率的影响强度）
MAC_BACKOFF_GAMMA = 0.04            # 二阶非线性系数（高并发下加剧退化）
MAC_BACKOFF_MIN = 0.60              # 净效率下限（保障稳定性）
MAC_BACKOFF_MAX = 0.90              # 净效率上限（对应轻载与聚合开销）
